Location service request throttling

ABSTRACT

A technique to allow a server such as a location server to throttle concurrent or closely timed location requests for the position of a given wireless device such that within a certain time period preferably only one location request will be initiated to the positioning engine and the remaining closely-timed location requests will be buffered or cached. When a position for the given wireless device is returned per the outstanding location request, then the retrieved position will be used to respond to each of the buffered location requests. Thus, a plurality of location requests are satisfied with a single request to the positioning engine. By optimizing the use of cached position requests, throttling of location requests per the invention reduces network traffic significantly, increases the efficiency of a positioning server (therefore reducing business cost), and provides for an improved grade or quality of location based services in general.

The present application is a continuation application of U.S. patent application Ser. No. 14/188,351, filed 24 Feb. 2014; which is a continuation of U.S. patent application Ser. No. 11/244,223, filed 6 Oct. 2005 (now U.S. Pat. No. 8,660,573, issued 25 Feb. 2014; which claims priority from U.S. Provisional Application No. 60/700,345, filed 19 Jul. 2005, the entirety of all of which is expressly incorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates generally to wireless and long distance carriers, Internet Service Providers (ISPs), and information content delivery services/providers and long distance carriers. More particularly, it relates to location services for the wireless industry.

2. Background of the Related Art

Wireless devices, and in particular cell phones, have become ubiquitous with day-to-day life. A majority of people in the United States now own cell phones.

Location services are a more recent advanced feature made available for use with wireless devices, perhaps most notably to provide location of a cell phone. The general goal of location-based services is to automatically provide location-based information to a requesting application. The requesting application may be operating on the wireless device itself, or even on an external application running, e.g., on another device in the wireless or other network. Some exemplary applications that use location services include mapping applications that show interesting places in a vicinity of the wireless device's current global position. Location based services are available for wireless devices such as personal digital assistants (PDAs) as well as for cell phones.

Cell phones and other wireless devices have become very sophisticated mini-computer devices, capable of running multiple software applications in a time-shared simultaneous manner. Popular operating systems for a wireless device include, e.g., Smartphone™ or PocketPC™, both of which permit simultaneous operation of multiple application programs on a given wireless device.

For various reasons realized by the present inventors, one or multiple location service applications may request location information of a given wireless device generally at the same time, or at least within a short period of time. The location requests may come from applications running on the wireless device itself (e.g., mapping programs), and/or from applications running on other devices within the wireless network or otherwise in communication with the wireless network, e.g., from land-based wired devices. The present inventors have appreciated that such duplicate or closely-timed location requests consume resources in the wireless network as well as the target mobile wireless device, generally causing more network traffic and slower operations of applications.

It is realized by the inventors herein that the conventional location/positioning software engine (e.g., either on a network based device or in a component in the wireless device) cannot properly handle multiple location request transactions grouped closely in time. For example, in North American emergency 9-1-1 location services, a Public Safety Answering Point (PSAP) may initiate a location request for the position information of a wireless device from which an emergency call is made in very short succession, e.g., every two seconds. However, in current satellite systems a single typical Assisted GPS (AGPS) fix takes about 15 seconds. Multiple location requests within this 15 second or so time period required for a single location fix tends to congest the software positioning engine, not to mention the network, causing most of the concurrent location requests to fail.

There is a need for better management of location requests relating to wireless devices as the number of applications that request location information grow in number, to reduce wireless network traffic and to utilize network resources more efficiently.

SUMMARY OF THE INVENTION

In accordance with the principles of the present invention, a technique for throttling location requests relating to a wireless device comprises logging a plurality of location requests within a short period of time relating to a position of the wireless device. Only one of the logged plurality of location requests is allowed through to a positioning engine relating to the wireless device. A location returned to the only one of the logged plurality of location requests is used as a location returned in remaining ones of the plurality of location requests.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows an exemplary call flow, in accordance with an embodiment of the present invention.

FIG. 2 shows an exemplary general procedure for processing location requests, in accordance with the principles of the present invention.

FIG. 3 shows a state diagram of update location requests, in accordance with the principles of the present invention.

DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS

The present invention provides a technique to allow a server such as a location server to throttle concurrent or closely timed location requests for the position of a given wireless device such that within a certain time period preferably only one location request will be initiated to the positioning engine and the remaining closely-timed location requests will be buffered or cached. When a position for the given wireless device is returned per the outstanding location request, then the retrieved position will be used to respond to each of the buffered location requests. Thus, a plurality of location requests are satisfied with a single request to the positioning engine.

By optimizing the use of cached position requests, throttling of location requests per the invention reduces network traffic significantly, increases the efficiency of a positioning server (therefore reducing business cost), and provides for an improved grade or quality of location based services in general.

The contents of a location request varies depending on the interface types between the location service application and the location server. However, a location request typically includes the following key elements which are important for processing the location request:

-   -   Request Quality of Position (QoP) which usually contains         horizontal accuracy and response time (e.g. No Delay, Low Delay,         Delay Tolerant or within a specific time).     -   Type of Location which indicates that the location request is         for an Initial location, an Update/Last Known location, or an         Update location of the target mobile. In the normal         implementation of location based services, initial location is         specific for the emergency location service, in which case the         initial location is already stored in a cache database waiting         for a query. An Update/Last Known location type request can be         satisfied by using either a cached location if it is available         and meet the requested QoP, or an updated location of the mobile         wireless device retrieved from the network. For an update         location type request, the location server retrieves the current         location of the target mobile wireless device.

Optionally a cache database may not implemented in a location server. Use of a cached location for a given wireless device can reduce network traffic for Update/Last Known type location requests.

The invention introduces a method and complete procedure for throttling multiple location requests relating to the position of a same wireless device within a short period of time, e.g., within a period of time required to fulfill a single position determination. Concurrent or closely-timed location requests for the same target mobile are buffered so that at any given time there is only one ongoing positioning process for a target mobile wireless device. Other duplicated or sequential requests are buffered until the current location of the target mobile wireless device is retrieved. The retrieved position is then used to respond to all the buffered location requests.

FIG. 1 illustrates an example of message flow according to the invention where location request throttling in according to the invention is implemented in a mobile positioning center (MPC) 102, which is a location server in the ANSI wireless network.

In particular, as shown in FIG. 1, a location application 106 that resides in a public safety access point (PSAP)/ESME 104 initiates location requests for an emergency caller using a wireless or VoIP device to a location server MPC 102. In FIG. 1, the broad vertical bars tg, tr, tb represent running timers that can be interrupted by different events. The E2 ESPRT timer tr is a timer running in the MPC 102 for the protocol interface between the PSAP/ESM 104 and the MPC 102.

It is important to note that the call flow of FIG. 1 is an example that does not intend to present all the possible scenarios for implementing the inventive ALI-MPC location request throttling as disclosed and described herein.

In step a, an emergency call is initiated and routed by the Public Land Mobile Network (PLMN) 110 and MPC 102, to the PSAP 106 assigned to the service area where the call is initiated.

In step b, the MPC 102 initiates a GPOSREQ (initial) to the position determining equipment (PDE), to request both a coarse interim location and precise initial location information.

In step c, a position is returned in a gposreq from the PLMN 110.

In step d, the emergency call to the PSAP 106 is answered.

In step e, an automatic or manual query is sent by the ESME 104 to request the call's initial information. Conventional PSAPs can only make one type of query. The ESME 104 maintains context for E2 ESPOSREQ's REQUESTTYPE. Since this is the first request for this call for this PSAP 106, the MPC 102 can expect at least one ESPOSREQ (initial) request will precede any Updated or Updated/LastKnown” requests. The MPC/Gateway Mobile Location Center (GMLC) starts an ESPRT timer using the ESPRT value provisioned for the ALI1 E2 interface.

In step f, the MPC 102 responds to the Initial location request with the Initial position information that is in cache.

In step g, the PSAP 106 queries the Updated/LastKnown location by sending an ESPOSREQ from ALI1.

In step h, the MPC/GMLC returns the cached position in an esposreq, as the “Stale Age” of ALI1 is set to a value bigger than 0, and the age of the cached position is less than the “Stale Age”. Age is calculated from the time when the position was retrieved to the time the request arrives at MPC.

In step i, another ESPOSREQ for Initial location from ALI1 arrives.

In step j, the MPC 102 responds to the Initial request with the Initial position information that is in cache.

In step k, an ESPOSREQ for updated location from ALI1 is received. The MPC 102 initiates a network Updated Location Retrieval Procedure by sending a GPOSREQ to the PLMN 110 and starts an Updated Timer.

In step l, another ESPOSREQ for Initial location is received. This may be due to a different PSAP querying the initial location of the same emergency call.

In step m, the MPC 102 responds to the Initial request with the Initial position information that is in cache.

In step n, an ESPOSREQ for Updated/LastKnown location is received from ALI1 for the same call at the MPC 102. Since the cached position is stale already, the MPC 102 treats this request the same as an Updated Request. Therefore, as there is already an Updated Request being processed, the MPC 102 puts this request in a multiple location request Queue, starts an ESPRT for this request, and waits for the updated location.

In step o, an ESPOSREQ for an Updated location is received from the ALI1 for the same call at the MPC 102. Since there is already an Updated Request being processed, the MPC 102 puts this request in the multiple location request Queue, starts an ESPRT for this request, and waits for the updated location.

In step p, when the PDE's gposreq with XY′ is received, the Updated Timer is stopped. The MPC 102 starts responding to the buffered requests using the updated position in a FIFO order, and it sends an esposreq with position XY′.

In step q, the MPC 102 responds to the second buffered Updated Request with the same position XY′.

In step r, the MPC 102 responds to the third buffered Updated Request with the same position XY′.

In step s, another ESPOSREQ for the Initial location is received. This may be due to a different PSAP querying the initial location of the same emergency call.

In step t, the MPC 102 responds to the Initial request with the cached position XY′.

In step u, an ESPOSREQ for an Update/LastKnown location from a different ALI interface (ALI2) arrives. Although the cached location is not stale yet for other ALI interfaces (e.g. ALI1), but the “Stale Age” associated with this ALI interface is set to “0”, so the MPC 102 treats the Updated/LastKnown Request the same as the Updated Request, it sends a GPOSREQ to the PLMN 110 to retrieve the updated position of the emergency caller, and starts the Updated Timer.

In step v, an ESPOSREQ for an Updated location is received from the ALI1 for the same call. Since there is already an Updated Request being processed, the MPC 102 puts this request in the multiple location request Queue, starts an ESPRT for this request, and waits for the updated location.

In step w, the ESRPT timer of the first queued Updated Request expires, the MPC 102 sends the last known position XY′ via an ALI2 in an esposreq to the PSAP 106 and removes this request from the multiple location request Queue.

In step x, the Updated Timer expires, the MPC 102 retries the Updated Location Retrieval Procedure by sending another GPOSREQ, and re-starts the Updated Timer.

In step y, an ESPOSREQ for an Updated location is received from the ALI1 for the same call. Since there is already an Updated Request being processed, the MPC 102 puts this request in the multiple location request Queue, starts an ESPRT for this request, and waits for the updated location.

In step z, when the PDE's gposreq with XY′ is received, the Updated Timer is stopped. The MPC 102 starts responding to the buffered requests using the updated position in a FIFO order, and it sends an esposreq with position XY″.

In step aa, an ESPOSREQ for an Updated location is received from the ALI1 for the same call. The MPC 102 puts the request into the existing queue.

In step bb, the MPC 102 responds to the second buffered Updated Request with the same position XY′″, and removes the request from the multiple location request Queue.

In step cc, the MPC 102 responds to the third buffered Updated Request with the same position XY′″, and removes the request from the multiple location request Queue. The multiple location request Queue is cleared after the last location request is removed.

FIG. 2 shows an exemplary general procedure for processing multiple location requests received within a short period of time, e.g., within a time required to process a single location request with respect to a single wireless device, in accordance with the principles of the present invention.

In particular, FIG. 2 shows how a location server can determine whether a received location request 202 needs to trigger a network query to retrieve the current location of a target mobile wireless device, which will be handled by the throttling process illustrated in FIG. 3.

In step 204 of FIG. 2, the type of location request is determined, e.g., whether the location request type is “Updated/LastKnown”, “Updated”, or “Initial”.

If the location request type is “Updated/LastKnown”, the process continues to step 206, where it is determined if the “Stale Age” of the interface is set to ‘0’. If not, the process continues to step 208, where it is determined if there is a cached location with age less than or equal to the “Stale Age”. If not, the process continues to step 222, where the location request is responded to with the cached location and “LastKnown” indicator, and then the process ends.

Back at step 204, if the location request type was “Initial”, then the process continues to step 224, where the process moves to an appropriate existing “Initial” request handling procedure.

Back to step 204, if the location request was of the “Updated” type, the question is asked in step 210 if the serving MSC provisioned with a throttling technique as described herein. If not, the process moves to step 216, where the network updated location retrieval procedure without throttling is activated. If the result of the question asked in step 210 is yes, then the process instead moves to step 212, where it is determined if the size of the location request queue is set to ‘0’. If yes, the procedure moves to step 216. If not, then the procedure moves to step 214, where an updated location request throttling procedure is activated.

Following step 214 or step 216 is step 218, which determines if a new updated position information is retrieved. If not, the procedure moves to step 222. If so, the procedure moves to step 220, where a response is formatted with the newly retrieved position and “Updated” indicator, following which the procedure ends.

FIG. 3 shows a state diagram for handling update location requests in a location request throttling engine, in accordance with the principles of the present invention.

When the Location Server receives a location request, it first examines the type of location request. Different request types are treated differently. The location request throttling feature is checked to see if it is enabled. If the location request throttling feature is disabled, the location server processes the received location request normally as if no location request throttling feature were available.

The Location Server may optionally include a configurable “Stale Age”. The “Stale Age” controls whether a cached position can be used for an “Update/LastKnown” location request. If the “Stale Age” is set to “0”, or if there is no cached position of which the age is less than the “Stale Age”, then the “Update/LastKnown” Requests will directly trigger a Network Updated Location Retrieval procedure for an Updated position similar to the procedure for “Updated” Requests. Otherwise, the cached position will be returned in response to the received “Updated/LastKnown” location as a “Last Known” location.

State Definition S1: Idle

In the Idle State S1 of a mobile wireless device in the cache database, no resource is allocated.

The Idle State S1 does not change until the first outstanding “Updated” Location Request is received, at which time the Location Server creates a multiple location request Queue for the Updated Request, puts the received location request into the multiple location request Queue, initiates an update location retrieval procedure, and transitions to the S2 “Waiting for updated location, Queue is not empty and is not full” state.

S2: Waiting for Updated Location, Queue is not Empty and is not Full

In the S2 State, the Location Server waits for updated position information to be retrieved from the network, while the “Updated Timer” is running.

In the S2 State, several events may occur and will not trigger state transition:

-   -   Additional “Updated” location request for the same emergency         caller is received, in which case the Location Server puts the         “Updated” request into the multiple location request Queue while         the multiple location request Queue is not full, and starts a         Response Timer for this request.     -   Upon expiration of the Response Timer of a buffered “Updated”         request, which is not the last “Updated” location request in the         multiple location request Queue, the Location Server removes the         location request from the multiple location request queue and         indicates a “Last Known” Position for formatting a response to         the original location request.     -   When the “Updated Timer” of the multiple location request queue         expires or an error is returned from the network for an updated         position retrieval procedure, if the multiple location request         Queue is not empty, then the Location Server re-initiates an         updated location retrieval procedure and starts a new “Updated         Timer”.

In the S2 State, the following events will trigger state transition from the S2 State to the S1 Idle State:

-   -   Upon expiration of the Response Timer of the last buffered         “Updated” location request, the Location Server removes the         location request from the multiple location request queue and         indicates a “Last Known” Position for formatting a response to         the original location request, and clears the multiple location         request Queue.     -   When the updated location is retrieved, the Location Server can         respond to all of the buffered “Updated” requests with the same         updated location and clears the multiple location request Queue.         The received location information is used to update cached data         as well.     -   For call related location service sessions, when the call is         terminated, the Location Server responds to all pending buffered         requests with a “Last Known” Position, and clears the multiple         location request Queue.         In the S2 State, the following event will trigger state         transition from the S2 State to the S3 State:     -   An additional “Updated” location requests for the same emergency         caller is received, in which case the Location Server puts the         “Updated” location request into the multiple location request         Queue, which becomes full, and starts the ALI Response Timer for         this location request.

S3: Waiting for Updated Location, Queue is Full

In the S3 State, the Location Server waits for the updated position information to be retrieved from the network, while the “Updated Timer” is running and the multiple location request Queue is full.

In the S3 State, several events may occur and will not trigger state transition:

-   -   An additional “Updated” location request for the same emergency         caller is received, in which case the Location Server responds         to the location request right away with the “Last Known”         Position.     -   When the “Updated Timer” of the multiple location request queue         expires, or an error is returned from the network for an updated         position retrieval procedure, the Location Server re-initiates         an updated location retrieval procedure and starts a new         “Updated Timer”.         In the S3 State, the following events will trigger state         transition from the S3 State to the S1 Idle State:     -   When the updated location is retrieved, the Location Server         responds to all the buffered “Updated” location requests with         the same updated location, and clears the multiple location         request Queue. The received location information is used to         update cached data as well.     -   For call related location service sessions, when the call is         terminated, the Location Server responds to all buffered         location requests with “Last Known” Position, and clears the         multiple location request Queue.

In the S3 State, the following event will trigger state transition from the S3 State to the S2 State:

Upon expiration of the Response Timer of a buffered “Updated” location request, the Location Server removes the location request from the multiple location request queue and indicates a “Last Known” Position for formatting a response to the original location request, and clears the multiple location request Queue.

Event and Action Table

Table 1 presents details of exemplary events and corresponding actions that are preferably taken for the state machine illustrated in FIG. 3.

TABLE 1 Event and Action Table Event State Action State Transition An “Updated” S1 Location Server creates a Queue S1  

 S2 request (the for Updated Requests, puts the first received request into the Queue, outstanding initiates update location request) is retrieval procedure and starts received Updated Timer. S2 N/A N/A S3 N/A N/A Additional S1 N/A N/A “Updated” S2 Location Server puts the Remaining request for the “Updated” request into the in State same mobile Queue while Queue is not full, S2 wireless device and starts a ALI Response is received Timer for this request E911 System puts the S2  

 S3 “Updated” location request into the multiple location request Queue, which becomes full, and starts an ALI Response Timer for this location request. S3 Location Server responds to the Remaining location request right away with in State “Last Known” Position S3 “Updated S1 N/A N/A Timer” of the S2 Location Server re-initiates an Remaining multiple updated location retrieval in State location procedure and starts a new S2 request queue “Updated Timer”. expires S3 Location Server re-initiates an Remaining updated location retrieval in State procedure and starts a new S3 “Updated Timer”. Expiration of S1 N/A N/A Response S2 Location Server removes the Remaining Timer of a location request from the in State buffered multiple location request queue S2 “Updated” and indicates a “Last Known” location Position for formatting a request, which response to the original location is not the last request “Updated” S3 Location Server removes the S3  

 S2 request in the location request from the multiple multiple location request queue location and indicates a “Last Known” request Queue Position for formatting a response to the original location request Expiration of S1 N/A N/A Response S2 Location Server removes the S2  

 51 Timer of the location request from the last buffered multiple location request queue “Updated” and indicates “Last Known” location Position for formatting a request response to the original location request, and clears the multiple location request Queue S3 N/A N/A The updated S1 Location Server updates the Remaining location cached data. in State request is S1 retrieved S2 Location Server responds to all S2 

 S1 the buffered “Updated” location requests with the same updated location and clears the multiple location request Queue, and updates the cached data. S3 Location Server responds to all S3 

 S1 the buffered “Updated” requests with the same updated location and clear the Queue, update the cached data. For call related S1 N/A N/A location S2 Location Server responds to the S2  

 S1 service all the buffered requests with sessions, when “Last Known” Position, and the call is clear the Queue terminated S3 Location Server responds to all S3  

 S1 the still-pending buffered location requests with a “Last Known” Position, and clear the multiple location request Queue An error is S1 Ignore Remaining returned from in State the Updated S1 Position S2 Location Server re-initiates an Remaining Retrieval updated location retrieval in State Procedure procedure, and starts a new S2 “Updated Timer”. S3 Location Server re-initiates an Remaining updated location retrieval in State procedure, and starts a new S3 “Updated Timer”.

While the invention has been described with reference to the exemplary embodiments thereof, those skilled in the art will be able to make various modifications to the described embodiments of the invention without departing from the true spirit and scope of the invention. 

1. (canceled)
 2. A method comprising: receiving, at a location server, a given location request for the location of a particular wireless device from a given location application; requesting, at the location server, a current location of the given wireless device in response to the given location request from the given location application; buffering, at the location server, another location request for the location of the particular wireless device in response to receiving another location request from another location application after receipt of the given location request and prior to receipt of a response to the request for the current location; receiving, at the location server, the current location of the particular wireless device; and transmitting, from the location server, the received current location to the given location application and the other location application.
 3. The method of claim 2, further comprising: setting, at the location server, a timer that expires after a predetermined amount of time in response to receipt of the current location of the particular wireless device; and receiving a third location request from a third location application for the location of the particular wireless device, wherein the third location request is received after receipt of the current location of the particular wireless device and prior to expiration of the timer.
 4. The method of claim 3, wherein the predetermined amount of time is about 15 seconds.
 5. The method of claim 3, further comprising: receiving, at the location server, a fourth location request from a fourth location application for the location of the particular wireless device, wherein the fourth location request is received after receipt of the current location of the particular wireless device and prior to expiration of the timer, wherein the fourth location request includes a stale age parameter that indicates than an immediate update to the location of the particular wireless device is desired; and requesting, at the location server, an updated location of the given wireless device in response to the fourth location request from the fourth location application.
 6. The method of claim 5, further comprising: timing out, by the location server, in response to not receiving the updated location of the given wireless device within a predetermined amount of time after the request for the updated location of the particular wireless device; and providing the current location of the particular wireless device to the fourth location application in response to the timing out.
 7. The method of claim 5, further comprising: receiving the updated location for the particular wireless device; and resetting the timer in response to receipt of the updated location for the particular wireless device.
 8. The method of claim 2, wherein the current location corresponds to a position measured by a global positioning system (GPS) of the particular wireless device.
 9. A location server comprising: a non-transitory machine readable medium storing machine readable instructions; and a processor to access the non-transitory machine readable medium and execute the machine readable instructions, the machine readable instructions being configured to: receive a given location request for the location of a particular wireless device from a given location application; request a current location of the given wireless device in response to the given location request from the given location application; receiving, at the location server, the current location of the particular wireless device; set a timer that expires after a predetermined amount of time in response to the receipt of the current location of the particular wireless device; buffer another location request for the location of the particular wireless device from another location application in response to either (i) receiving the other location request after receipt of the given location request and prior to receipt of a response to the request for the current location or (ii) receiving the other location request after receipt of the response to the request for the current location and prior to expiration of the timer; and transmitting, from the location server, the received current location of the particular wireless device to the given location application and the other location application.
 10. The location server of claim 9, wherein the current location of the particular wireless device corresponds to a position measured by a global positioning system (GPS) of the particular wireless device.
 11. The location server of claim 9, wherein the predetermined amount of time is about 15 seconds.
 12. The location server of claim 9, wherein the machine readable instructions are further configured to: receive a third location request from a third location application for the location of the particular wireless device, wherein the third location request is received after receipt of the current location of the particular wireless device and prior to expiration of the timer, wherein the third location request includes a stale age parameter that indicates than an immediate update to the location of the particular wireless device is desired; and request an updated location of the particular wireless device in response to the third location request from the third location application.
 13. The location server of claim 12, wherein the machine readable instructions are further configured to: time out in response to not receiving the updated location of the particular wireless device within a predetermined amount of time after the request for the updated location of the particular wireless device; and provide the current location of the particular wireless device to the third location application in response to the timing out.
 14. The location server of claim 12, wherein the machine readable instructions are further configured to: receive the updated location for the particular wireless device; and reset the timer in response to receipt of the updated location for the particular wireless device.
 15. A method comprising: transmitting, from a location server, a location request for a current location of a particular wireless device; receiving, at a location server, the current location of the particular wireless device; setting, at the location server, a timer that expires after a predetermined amount of time in response to receipt of the current location of the particular wireless device; buffering, at the location server, a given location request from a given location application for the location of the particular wireless device in response to receiving the given location request after receipt of the current location of the particular wireless device and prior to expiration of the timer; and transmitting, from the location server, the received current location to the given location.
 16. The method of claim 15, further comprising: buffering, at the location server, another location request from another location application for the location of the particular wireless device in response to receiving the other location request after transmitting the location request and prior to receipt of the current location; and transmitting, from the location server, the received current location to the other location application.
 17. The method of claim 15, wherein the predetermined amount of time is about 15 seconds.
 18. The method of claim 15, further comprising: receiving, at the location server, another location request from another location application for the location of the particular wireless device, wherein the other location request is received after receipt of the current location and prior to expiration of the timer, wherein the other location request includes a stale age parameter that indicates than an immediate update to the location of the particular wireless device is desired; and requesting, at the location server, an updated location of the particular wireless device in response to the other location request from the other location application.
 19. The method of claim 18, further comprising: timing out, by the location server, in response to not receiving the updated location of the given wireless device within a predetermined amount of time after the requesting of the updated location of the particular wireless device; and providing the current location of the particular wireless device to the other location application in response to the timing out.
 20. The method of claim 18, further comprising: receiving the updated location for the particular wireless device; and resetting the timer in response to receipt of the updated location for the particular wireless device.
 21. The method of claim 15, wherein the current location corresponds to a position measured by a global positioning system (GPS) of the particular wireless device. 